import { goodslist, goodscount } from "../../../request/api"
const state = {
    goodsList: [],
    pageCount: 0,
    pageSize: 3,
    pageNum: 1
}
const getters = {
    getGoods(state) {
        return state.goodsList
    },
    getCount(state) {
        return state.pageCount
    },
    getSize(state) {
        return state.pageSize
    }
}
const mutations = {
    REQ_GOODS(state, payload) {
        return state.goodsList = payload
    },
    REQ_COUNT(state, payload) {
        return state.pageCount = payload
    },
    //封装一个修改页码的事件
    REQ_UPDATANUM(state, payload) {
        state.pageNum = payload
    }
}
const actions = {
    //获取列表数据
    getGoodsAction(context) {
        goodslist({
            page: context.state.pageNum,
            size: context.state.pageSize,
        }).then(res => {
            context.commit('REQ_GOODS', res.list)
            //问题bug 出现的分析  出现什么bug  为什么出现   怎么解决
            //本次bug   列表最后一页  全部数据删除 然后请求总数 并且请求数据 的时候页码没有改变  还是原来的最后一页的页码  但是最后一页已经没有数据了  所以出现bug
            //解决方案   页面不在第一页并且当前请求的数据个数为0
            if (context.state.pageNum != 1 && res.list == null) {
                //重新触发页码修改
                context.dispatch('getPageNumAction', context.state.pageNum - 1)
            }
        })
    },
    //获取商品总数
    getCountGoodAction(context) {
        goodscount().then(res => {
            context.commit('REQ_COUNT', res.list[0].total)
        })
    },
    //封装一个修改页码的事件
    getPageNumAction(context, payload) {
        context.commit('REQ_UPDATANUM', payload)
        //调用获取数据接口
        context.dispatch('getGoodsAction')
    }
}

export default {
    state, getters, mutations, actions,
    namespaced: true
}